﻿package com.main
{
	import flash.events.Event;
	import flash.events.EventDispatcher;
	import flash.events.IEventDispatcher;
	import com.tools.notifications.XmlEvent;
	
	/////////////////////////////////////////////////////////////////////////////////////////////////////////
	// CustomDispatcher ::
	//
	// Cette classe, une fois étendue, permet d'utiliser directement les méthodes d'EventDispatcher,
	// sans avoir recours à la composition ni de devoir implémenter à chaque fois les méthodes de l'interface
	//
	// Elle reproduit en quelque sorte l'implémentation réalisée dans Flex :
	// Object -> EventDispatcher -> toutes les classes Flex
	/////////////////////////////////////////////////////////////////////////////////////////////////////////
	
	public class CustomDispatcher extends EventDispatcher implements IEventDispatcher
	{
		/////////////////////////////////////////////////////////////////////////////////////////////////////////
		// CONSTRUCTEUR
		/////////////////////////////////////////////////////////////////////////////////////////////////////////
		
		function CustomDispatcher ( )
		{
			super();
		}
		
		/////////////////////////////////////////////////////////////////////////////////////////////////////////
		// OVERRIDE DES METHODES PARENTES
		/////////////////////////////////////////////////////////////////////////////////////////////////////////
		
		override public function addEventListener( type:String, listener:Function, useCapture:Boolean=false, priority:int=0, useWeakReference:Boolean=false ):void
		{
			super.addEventListener( type, listener, useCapture, priority, useWeakReference );
		}
		
		override public function dispatchEvent( event:Event ):Boolean
		{
			return super.dispatchEvent( event );
		}
		
		override public function hasEventListener( type:String ):Boolean
		{
			return super.hasEventListener( type );
		}
		
		override public function removeEventListener( type:String, listener:Function, useCapture:Boolean=false ):void
		{
			super.removeEventListener( type, listener, useCapture );
		}
		
		override public function willTrigger( type:String ):Boolean
		{
			return super.willTrigger( type );
		}
	}
}